﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Lola.Persistencia;

namespace Lola.Modelo
{
    public class Incidencia
    {
        private int numeroIncidencia;
        private DateTime fechaIncidencia;
        private string nomSector;
        private string gravedad;
        private string descripcion;
        private int prioridad;
        private string cod;
        private string estado; // C: Cerrada, A:Abierta; EC:En curso;


        public Incidencia()
        {
        }
        public Incidencia(string cod,int numeroIncidencia, DateTime fechaIncidencia, 
                            string gravedad, string descripcion, int prioridad)
        {
            this.cod = cod;
            this.numeroIncidencia = numeroIncidencia;
            this.fechaIncidencia = fechaIncidencia;
            this.gravedad = gravedad;
            this.descripcion = descripcion;
            this.prioridad = prioridad;
            this.estado = "A";
        }

        public string Cod
        {
            get { return cod; }
            set { cod = value; }
        }

        public int NumeroInc
        {
            get { return numeroIncidencia; }
            set { numeroIncidencia = value; }
        }
        
        public DateTime FechaInc
        {
            get { return fechaIncidencia; }
            set { fechaIncidencia = value; }
        }
        
        public string NomSec
        {
            get { return nomSector; }
            set { nomSector = value; }
        }
        
        public string Gravedad
        {
            get { return gravedad; }
            set { gravedad = value; }
        }
       
        public string Descrip
        {
            get { return descripcion; }
            set { descripcion = value; }
        }
        

        public int Prioridad
        {
            get { return prioridad; }
            set { prioridad = value; }
        }


        public string Estado
        {
            get { return estado; }
            set { estado = value; }
        }

        public List<Incidencia> obtenerIncidencias(string cod)
        {
            List<Incidencia> incidencias = new List<Incidencia>();
            var lista = AdministradorPersistenciaIncidencia.getInstanciaIncidencia().buscarIncidencias(cod);
            for (int i = 0; i < lista.Count; i++)
            {
                Incidencia inc = new Incidencia(lista.ElementAt(i).cod,
                                     lista.ElementAt(i).numeroInc, 
                                     lista.ElementAt(i).fechInc, 
                                     lista.ElementAt(i).gravedad, 
                                     lista.ElementAt(i).descrip,
                                     lista.ElementAt(i).prioridad);
                incidencias.Add(inc);

            }
            return incidencias;
        }

        public void altaDeIncidencia(string cod,int numeroInc, DateTime fechaInc,string gravedad,string descrip,int prioridad)
        {
            //Ver numero incidencia si es auto
              AdministradorPersistenciaIncidencia.getInstanciaIncidencia().altaDeIncidencia(cod, numeroInc, 
                                                                    fechaInc, gravedad, descrip, prioridad);
        }

        public void bajaDeIncidencia(int num)
        {
            AdministradorPersistenciaIncidencia.getInstanciaIncidencia().bajaDeIncidencia(num);
        }

        public void modificarIncidencia(string cod,int numeroInc, DateTime fechaInc, 
                                        string gravedad, string descrip, int prioridad,string estado)
        {
            AdministradorPersistenciaIncidencia.getInstanciaIncidencia().modificarIncidencia(cod, numeroInc, fechaInc,
                                         gravedad, descrip, prioridad,estado);
        }

    }
}
